// 使用 dup2 实现 I/O 重定向，将标准输出重定向到创建的文件。

#include "error.h"

#include <stdio.h>

#include <unistd.h>

int
main()
{
    FILE *fp = fopen("test_dup2.log", "w");
    if (!fp)
        unix_error("fopen fail");
    
    int fd = fileno(fp);

    fprintf(stdout, "hello, world\n");
    fflush(stdout);

    // 将标准输出 STDOUT_FILENO 重定向到 fd
    if (dup2(fd, STDOUT_FILENO) < 0)
        unix_error("dup2 fail");
    fprintf(stdout, "hello, world after redirect I/O\n");
    fflush(stdout);

    fclose(fp);
    return 0;
}
